/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package xmpp.client.api.User;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import xmpp.client.api.bd.BD;
import xmpp.client.api.bd.XMPPExceptionSQL;

/**
 *
 * @author Miguel Gonzalez - Juanan Mangudo - Telecor
 */
public class ModifyUser {
    
    private static final String UPDATE_NAME="UPDATE ofUser SET name=? WHERE username=?";
    private static final String UPDATE_USERNAME="UPDATE ofUser SET username=? WHERE username=?";
    private static final String UPDATE_EMAIL="UPDATE ofUser SET email=? WHERE username=?";
    private static final String UPDATE_CREATION_DATE="UPDATE ofUser SET creationDate=? WHERE username=?";
    private static final String UPDATE_MODIFICATION_DATE="UPDATE ofUser SET modificationDate=? WHERE username=?";
    private BD bd;
    private Connection connection = null;
    public ModifyUser() throws XMPPExceptionSQL
    {
        bd = new BD();
    }
    public int modifyName(String userName, String newName) 
    {
        
      Connection con=null;
      PreparedStatement pstmt=null;
      try
      {
          con = bd.getConection();
          pstmt = (PreparedStatement)con.prepareStatement(UPDATE_NAME);
          pstmt.setString(1,newName);
          pstmt.setString(2, userName);
          pstmt.executeUpdate();
      }
      catch(Exception e)
      {
          System.out.println("Se ha producido un error en el cambio de nombre");
      }
      return 0;
    }
    
    //Esta función en ModifiedUser
    public int modifyEmail(String userName, String newEmail) 
    {
        
      Connection con=null;
      PreparedStatement pstmt=null;
      try
      {
          con = bd.getConection();
          pstmt = (PreparedStatement)con.prepareStatement(UPDATE_EMAIL);
          pstmt.setString(1,newEmail);
          pstmt.setString(2, userName);
          pstmt.executeUpdate();
      }
      catch(Exception e)
      {
          System.out.println("Se ha producido un error en el cambio de nombre");
      }
      return 0;
    }
    
    //En clase ModifiedUser
    public int modifyUserName(String userName, String newUserName) 
    {
        
      Connection con=null;
      PreparedStatement pstmt=null;
      try
      {
          con = bd.getConection();
          pstmt = (PreparedStatement)con.prepareStatement(UPDATE_USERNAME);
          pstmt.setString(1,newUserName);
          pstmt.setString(2, userName);
          pstmt.executeUpdate();
      }
      catch(Exception e)
      {
          System.out.println("Se ha producido un error en el cambio de nombre");
      }
      return 0;
    }
    
    //ESTA FUNCION SOBRA, LA FECHA DE CREACION NO SE MODIFICA
    public int modifyCreationDate(String userName, String newCreationDate) 
    {
        
      Connection con=null;
      PreparedStatement pstmt=null;
      try
      {
          con = bd.getConection();
          pstmt = (PreparedStatement)con.prepareStatement(UPDATE_CREATION_DATE);
          pstmt.setString(1,newCreationDate);
          pstmt.setString(2, userName);
          pstmt.executeUpdate();
      }
      catch(Exception e)
      {
          System.out.println("Se ha producido un error en el cambio de nombre");
      }
      return 0;
    }
    
    //A ESTA FUNCION SE LE LLAMA CADA VEZ QUE SE MODIFICA CUALQUIER COSA DE LAS ANTERIORES
    //POR LO TANTO PRIVADA Y ES LLAMADA POR LAS OTRAS MODIFY
    //En clase ModifiedUser
    public int modifyModificationDate(String userName, String newModificationDate) 
    {
        
      Connection con=null;
      PreparedStatement pstmt=null;
      try
      {
          con = bd.getConection();
          pstmt = (PreparedStatement)con.prepareStatement(UPDATE_MODIFICATION_DATE);
          pstmt.setString(1,newModificationDate);
          pstmt.setString(2, userName);
          pstmt.executeUpdate();
      }
      catch(Exception e)
      {
          System.out.println("Se ha producido un error en el cambio de nombre");
      }
      return 0;
    }
    
}
